package model

import (
	"time"

	"gorm.io/gorm"
)

// Position 职位模型
// 用于管理公司的职位信息，包括职位名称、职责、要求等
type Position struct {
	ID        uint           `gorm:"primarykey" json:"id"` // 职位ID，主键
	CreatedAt time.Time      `json:"created_at"`           // 记录创建时间
	UpdatedAt time.Time      `json:"updated_at"`           // 记录更新时间
	DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`       // 软删除时间

	Name           string  `gorm:"size:50;not null" json:"name"`     // 职位名称
	Code           string  `gorm:"size:20;not null" json:"code"`     // 职位编码
	DepartmentID   uint    `gorm:"not null" json:"department_id"`    // 所属部门ID
	Description    string  `gorm:"size:500" json:"description"`      // 职位描述
	Responsibility string  `gorm:"size:1000" json:"responsibility"`  // 岗位职责
	Requirement    string  `gorm:"size:1000" json:"requirement"`     // 任职要求
	SalaryMin      float64 `json:"salary_min"`                       // 最低薪资
	SalaryMax      float64 `json:"salary_max"`                       // 最高薪资
	Status         int     `gorm:"not null;default:1" json:"status"` // 状态：1-开放，0-关闭

	Department Department `gorm:"foreignKey:DepartmentID" json:"department,omitempty"` // 关联部门信息
}
